#include <iostream>
#include <signal.h>
#include <unistd.h>

using namespace std;

static void sigcb(int singalNo)
{
    sleep(1);
    cout << "捕捉到一个信号，信号编号为：" << singalNo << endl;
    
}

int main()
{
    //SIGINT 为ctrel + c时发出的信号，默认动作为停止该进程

    //signal(signum + handler 函数) ： 
    //向本进程发送信号 signum，处理方式为 handler
    //signal(SIGINT, sigcb);

    //在singal函数的基础上还可以保留从前的信号处理函数

    struct sigaction sa;
    sa.sa_handler = sigcb;
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = 0;

    sigaction(SIGINT,&sa,nullptr);
    
    while (true)
    {
        cout << "running" << endl;
        sleep(1);
    }

    return 0;
}